The present invention relates to devices for providing distributable middleware data proxy between application servers and database servers.
The enormous and growing Internet population with unpredictable usage patterns, combined with today's communication technologies introduce severe challenges in scalability, especially for database servers. Internet applications have an enormous number of users, report very fast growth, and suffer from unpredictable traffic peaks. Traditional businesses are increasingly using online transaction processing (OLTP) applications or portals that require high availability and real-time performance. Additionally, e-commerce businesses need “24/7” availability.
Existing relational-database management systems (RDBMS), such as MS SQL Server, Oracle, MySql, Sybase, and DB2, suffer from scalability constraints due to the number of transactions that are required to be executed. RDBMS's prime function has shifted today from managing information (or data) to delivering the data. Recently, it was shown that the only way to really scale any system is by “scaling out”, or distributing the workload on an expandable number of machines. However, scaling out databases is still a “near to impossible” task. Such tasks are either very complicated, risky, or even do not exist for certain database vendors.
Retrieval of data from databases by various clients creates a burden on the database server to retrieve and deliver the data. Current networked databases are responsible both for the handling of the data (e.g. insert/update/delete), and for the delivery of data.
In the prior art, systems and methods for cache capable of connecting multiple JAVA databases are known in which data is served from cache (see Korean Patent Publication No. 20030054110). U.S. Pat. No. 6,154,749 teaches a distributed caching scheme for database systems. U.S. Pat. No. 6,167,438 teaches a method and system for distributed caching, prefetching, and replication. WO Patent Publication No. 03081464 teaches a database system comprising database access object with cache. However, such approaches require application redesign and manual cache configuration. Furthermore, such approaches are limited to specific databases, do not validate data for consistency, and are not amenable to scaling out database servers. Such approaches still require application servers to perform many of the tasks routinely performed in a “non-cached data” environment, such as determining data validity.
It would be desirable to have devices for providing distributable middleware data proxy between application servers and database servers, which can continuously scale existing or new databases and information systems, without the need to redesign the application, make any changes in the database, and make significant upgrades to the database servers to scale-up and/or upgrade the data-center storage system.